查看原文
其他

DID-倍分法:事前趋势检验的局限性和诊断

连享会 连享会 2023-02-21

👇 连享会 · 推文导航 | www.lianxh.cn

连享会 · 2023 Stata寒假班

作者:郭楚玉 (武汉大学)
邮箱:julieguo@whu.edu.cn

温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:


目录

  • 1. Pre-trend Test 的局限性

    • 1.1 Low Power

    • 1.2 Distortions from Pre-trend Test

  • 2. Possible Diagonostic Tool

    • 2.1 Pretrends R Package 代码

    • 2.2 Pretrends R Package 优缺点

  • 3. 结语

  • 4. 参考资料

  • 5. 相关推文



1. Pre-trend Test 的局限性

识别真实、有效政策效应 (因果关系) 的困难是数据缺失。在任何时间,研究对象可能处于两种潜在结果中的任何一种,但不可能同时处于两种状态。因此我们需要控制组,作为处理组的反事实状态 (无法观测到、数据缺失) 的替代。一个“良好的”控制组需要和处理组同质,即两者越像越好。Pre-trend test 就是检验处理组和控制组是否“相像”的一个检验。

通常来说,我们希望事前趋势的系数都显著的不异于 0。然后我们就得出结论,因变量的事前趋势在处理组和控制组之间是很相像的。因此,控制组是“良好的”。Roth (2022) 这篇文章告诉我们,pre-trend test 有两个问题。

  • 第一个是 test 本身 low power。即事前平行趋势不满足时,pre-trend test 能检测出事前平行趋势不满足的概率很低。
  • 第二个问题是 distortions from passing the pre-trend test。作者认为能通过平行趋势检验的样本,只是整个 DGP (data generating process) 里的某一类样本(selected sample)。Selected sample 会对政策估计系数造成进一步的统计偏误 (statistical distortion)。

1.1 Low Power

首先,我们来看一下 pre-trend test 存在的第一个问题——low power。下图是用 TWFE 估计的系数绘制的 event-study plot:

下面,我们假设三种事前处理组和控制组之间的相对趋势:分别是平行趋势、线性趋势、二次函数趋势。

情况 (i): Zero Pre-trend

如下图所示,我们认为绿色圆点代表了真实的 pre-trend 情况,即处理组和对照组的 Y 变量拥有相同的事前平行趋势。Pre-trend test 的结果显示 P-value = 0.81。我们无法拒绝原假设,原假设是 TWFE 的估计系数 (黑色三角形) 等于绿色圆点。

情况 (ii): A Linear Pre-trend

如下图所示,我们认为红色圆点代表真实的 pre-trend 情况,即处理组和控制组的 Y 变量的事前相对趋势满足一条线性关系。Pre-trend test 的原假设为黑色三角 (回归估计系数) 等于红色圆点。作者有意的让这个 pre-trend test 的 P-value 也等于 0.81,即我们无法拒绝黑色三角系数等于红色圆点。

根据事前趋势的三个红点,外推出一条直线。在这种情况下,事后期 (0-3 期) 的系数 高估 了真实的处理效应。

情况 (iii): A Quadratic Pre-trend

如下图所示,此时蓝色圆点代表真实的 pre-trend 情况。同样,作者有意设定这个 pre-trend test 的 P-value 也等于 0.81,即我们无法拒绝黑色三角系数等于蓝色圆点。

根据事前趋势的三个蓝色圆点,外推出一条抛物线。在这种情况下,事后期 (0-3期) 的估计系数就 低估 了真实的政策效应。

上面展示的三种 pre-trend 的情况告诉我们,进行 Pre-trend test,我们无法拒绝平行趋势 (zero pre-trend), 但同样也无法拒绝 a linear pre-trend or a quadratic pre-trend。后面两种事前趋势,都会导致事后期的估计系数偏误。所以,这就是 pre-trend test has low power 的体现, 即当 pre-trend 不满足平行趋势时,pre-trend test 能检测出来的概率很低。

Note:当事前期的期数较少时,更容易出现 pre-trend test low power 的问题。

1.2 Distortions from Pre-trend Test

Pre-trend test 存在的第二个问题是 additional statistical distortions from "seemingly" passing the pre-trend test。假设实际上存在某种事前趋势 (violation of paralle trend),因为 pre-trend test 的 low power 问题,我们通过了 pre-trent test,所以我们错误的以为样本中的处理组和控制组之间没有事前趋势(zero pre-trend)。作者认为,这样的样本是整个 DGP 里面某一类特殊的样本 (selected sample), 而这也会进一步导致偏误。

现在我们举一个简单的三期 DID 模型的例子。假设有三期 ,处理组在 期受处理。假设没有处理效应。处理组相对控制组的变化趋势是一个线性关系,系数为

下图展示了当 时,处理组和控制组的 Y 变量的相对变化趋势  (黑色带三角线条)。注意,因为假设没有处理效应,控制组的 Y 变量的整体均值为 0,而处理组的 Y 变量是随时间变化的,是一条斜率为 3 的线性关系。通过模拟,我们可以从这个总体中,抽取出很多种样本结果,灰色线表示。

在这无数次随机抽样中,下图用蓝色高亮出来的线 (样本) 是那些能通过 Pre-trend test 检验的样本。我们可以发现,能通过平行趋势检验的样本,是那些在事前期比较平缓的 (即事前期系数更接近于0) 。作者总结,among the insignificant draws, we tend to underestimate the diffrence between treatment and control at t = 0. As a result, the DiD between period 0 and 1 tends to be particularly large when we get an insignificant pre-trend。这就是通过平行趋势检验而造成的 additional statistic distortions,这也会导致无法估计出真实的,有效的处理效应。

2. Possible Diagonostic Tool

根据这篇文章的思想,作者做了一个 pretrends R package。在一定程度上,可以帮助研究者检验上述提到的两个 pre-trend test 的问题是否很严重。下面为大家展示 pretrends R package 的具体做法,以及关键结果的解释。

2.1 Pretrends R Package 代码

# install.packages("devtools") 
devtools::install_github("jonathandroth/pretrends")

# load the package
library(pretrends)

#Load the coefficients, covariance matrix, and time periods
beta <- pretrends::HeAndWangResults$beta
sigma <- pretrends::HeAndWangResults$sigma
tVec <- pretrends::HeAndWangResults$tVec
referencePeriod <- -1 #This is the omitted period in the regression
data.frame(t = tVec, beta = beta)
#>    t         beta
#> 1 -4  0.066703148
#> 2 -3 -0.007701792
#> 3 -2 -0.030769054
#> 4  0  0.084030658
#> 5  1  0.242441818
#> 6  2  0.219878986
#> 7  3  0.191092536

pretrend R 包主要有两个功能。第一个主要功能是它可以帮你算出一条你假设的可能的线性 pre-trend 的斜率,并且你可以设定这条线性 pre-trend 能被 pre-trend test 检测出来的 power。

#Compute slope that gives us 50% power
slope50 <-
slope_for_power(sigma = sigma,
                targetPower = 0.5,
                tVec = tVec,
                referencePeriod = referencePeriod)
slope50
#> [1] 0.05205532

第二个主要功能是可以直观的画图和给出三个 power analysis 的指标。

pretrendsResults <- 
  pretrends(betahat = beta, 
            sigma = sigma, 
            tVec = tVec, 
            referencePeriod = referencePeriod,
            deltatrue = slope50 * (tVec - referencePeriod))

pretrendsResults$event_plot 
# 画出下图,event-study plot基础上,加上了刚刚你算出来的给定 pre-trend test power的一条线性趋势。

df_power 将展示三个有关的 power 统计量。

  • Power: The probability that we would find a significant pre-trend under the hypothesized pre-trend. 该值是我们之前自己设定好的,在上面的例子里 power = 0.5。
  • Bayes Factor: The ratio of the probability of "passing" the pre-test under the hypothesized trend relative to under parallel trends. 该值一般会小于 1, 因为一般更容易通过 zero pre-trend 检验。
  • Likelihood Ratio: The ratio of the likelihood of the observed coefficients under the hypothesized trend relative to under parallel trends.
pretrendsResults$df_power
#>       Power Bayes.Factor Likelihood.Ratio
#> 1 0.5002036     0.568873        0.1057885

Hypothesized trend 并不局限于线性形式,根据你的研究对象,你也可以假设存在二次函数形式的 pre-trend。 R 代码操作如下:

  quadraticPretrend <-
  pretrends(betahat = beta, 
            sigma = sigma, 
            tVec = tVec, 
            referencePeriod = referencePeriod,
            deltatrue = 0.024 * (tVec - referencePeriod)^2)

quadraticPretrend$event_plot_pretest

2.2 Pretrends R Package 优缺点

优点:

  • 简单可视化,可以呈现在原有的 event-study plot 上面呈现你的 hypothesized trend。直观判断 hypothesized trend 是否合理。
  • 只需要在原有研究习惯上,多做个检验,不需要很大的研究方法改变。

缺点:

  • Power 总是小于 1 的,无法保证政策系数的无偏。
  • 需要研究者根据自己文章的研究对象,以及相关的经济学研究背景,来自己判断一条 typothesized trend。这可能不易做到。

3. 结语

在之前的 DID 研究范式中,研究者非常依赖于是否可以通过平行趋势检验。如果没有通过,则可能会放弃这篇文章的想法。Roth 的这篇文章提醒我们注意考察,平行趋势检验的 power 是否足够强相比于 hypothesized trend 的检验。而且在 Roth 的另一篇文章 "An Honest Approach to Parallel Trends",直接建议研究者们不再做平行趋势检验,而是进行一个 formal sensitivity analysis。

4. 参考资料

  • Roth, Jonathan. "Pretest with Caution: Event-Study Estimates after Testing for Parallel Trends." American Economic Review: Insights 4, no. 3 (2022): 305-22. -PDF-
  • Rambachan, Ashesh, and Jonathan Roth. "A More Credible Approach to Parallel Trends." Unpublished manuscript, Harvard University (2019). -PDF-
  • Roth, Jonathan. "Testing and Sensitivity Analysis for Violations of Paralle Trends". Lecture notes (2021) -PDF-
  • Roth, Jonathan. Pretrends R Package -Link-

5. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 趋势, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 专题:Stata命令
    • Stata:线性趋势检验-lintrend
  • 专题:回归分析
    • Stata:时间虚拟变量还是时间趋势项?
    • 傻傻分不清:时间趋势项与时间虚拟变量
  • 专题:倍分法DID
    • Stata:一行代码绘制平行趋势图-eventdd
    • Stata:平行趋势不满足?主成分DID来帮你!- pcdid
    • Stata倍分法新趋势:did2s-两阶段双重差分模型
    • 多期DID之安慰剂检验、平行趋势检验
    • Stata 倍分法: 不满足平行趋势假设咋办?
    • 多期DID:平行趋势检验图示

课程推荐:因果推断实用计量方法
主讲老师:邱嘉平教授
🍓 课程主页https://gitee.com/lianxh/YGqjp

New! Stata 搜索神器:lianxhsongbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉  使用:
. lianxh DID 倍分法
. songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存